package algo.Model;
import algo.LocalSearch.*;

public class BasicLocalSearchEntity {
	long	_id;
	LocalSolver _ls;
	
	public BasicLocalSearchEntity[] getDependEntities(){
		// return all entities on which the current entity depends
		System.out.println("BasicLocalSearchEntity::getDependEntity -> this must be implemented within extended class");
		assert(false);
		return null;
	}
		
	public String name(){
		System.out.println("BasicLocalSearchEntity::name -> this must be implemented within extended class");
		assert(false);
		return null;
	}
	public BasicLocalSearchEntity(long id){
		_id = id;
	}
	public BasicLocalSearchEntity(){
		
	}
	public BasicLocalSearchEntity(LocalSolver ls){
		_ls = ls;
	}
	public LocalSolver getLocalSolver(){
		return _ls;
	}
	public void setLocalSolver(LocalSolver ls){
		_ls = ls;
	}
	public long getID(){ return _id;}
	public void setID(long id){
		_id = id;
	}
	
	public void initPropagate(){
		System.out.println("BasicLocalSearchEntity::initPropagate, this must be implemented within subclass");
		assert(false);
	}
	public void propagateInt(VarInt x, int val){
		System.out.println("BasicLocalSearchEntity::propagate, this must be implemented within subclass");
		assert(false);
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
